﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using SouthApps.MobileTasks.SDK.DAL.Repositories;
using SouthApps.MobileHealth.SDK.DAL;
using SouthApps.MobileHealth.SDK.DAL.Model;
using SouthApps.MobileHealth.SDK.Utils;
using SouthApps.MobileHealth.SDK.Cache;

namespace SouthApps.MobileHealth.SDK.Services
{
    public class ZonasService
    {
        private IZonasRepository zonasRepository;
        
        public ZonasService()
        {
            this.zonasRepository = new ZonasRepository();
        }

        public void AddDepartamento(Departamento departamento)
        {
            this.zonasRepository.AddDepartamento(departamento);
        }

        public List<Departamento> GetDepartamentosConGuardiasSucursalesPrestador(int financiadorId, int provinciaId, int? servicioGuardiaId)
        {
            return this.zonasRepository.GetDepartamentosConServicioGuardiaSucursalPrestador(financiadorId, provinciaId, servicioGuardiaId);
        }

        public List<Departamento> GetDepartamentosConServicioEspecial(int financiadorId, int provinciaId, int servicioEspecialId)
        {
            return this.zonasRepository.GetDepartamentosConServicioEspecial(financiadorId, provinciaId, servicioEspecialId);
        }

        public List<Departamento> GetDepartamentosConSucursalesPrestador(int financiadorId, int provinciaId)
        {
            return this.zonasRepository.GetDepartamentosConSucursalesPrestador(financiadorId, provinciaId);
        }

        public List<Departamento> GetDepartamentosConEspecialidadSucursalesPrestador(int financiadorId, int provinciaId, int especialidadId)
        {
            return this.zonasRepository.GetDepartamentosConEspecialidadSucursalesPrestador(financiadorId, provinciaId, especialidadId);
        }

        public List<Departamento> GetDepartamentosConCentrosAtencion(int financiadorId, int provinciaId)
        {
            return this.zonasRepository.GetDepartamentosConCentrosAtencion(financiadorId, provinciaId);
        }

        public void ModifyDepartamento(Departamento departamento)
        {
            this.zonasRepository.ModifyDepartamento(departamento);
        }

        public void AddProvincia(Provincia provincia)
        {
            this.zonasRepository.AddProvincia(provincia);
        }

        public List<Provincia> GetProvinciasConGuardiasSucursalesPrestador(int financiadorId, int paisId, int? servicioGuardiaId)
        {
            return this.zonasRepository.GetProvinciasConGuardiasSucursalesPrestador(financiadorId, paisId, servicioGuardiaId);
        }

        public List<Provincia> GetProvinciasConServicioGuardiaSucursalPrestador(int financiadorId, int paisId, int servicioGuardiaId)
        {
            return this.zonasRepository.GetProvinciasConServicioGuardiaSucursalPrestador(financiadorId, paisId, servicioGuardiaId);
        }

        public List<Provincia> GetProvinciasConServicioEspecial(int financiadorId, int paisId, int servicioEspecialId)
        {
            return this.zonasRepository.GetProvinciasConServicioEspecial(financiadorId, paisId, servicioEspecialId);
        }

        public List<Provincia> GetProvinciasConSucursalesPrestador(int financiadorId, int paisId)
        {
            return this.zonasRepository.GetProvinciasConSucursalesPrestador(financiadorId, paisId);
        }

        public List<Provincia> GetProvinciasConEspecialidadSucursalesPrestador(int financiadorId, int paisId, int especialidadId)
        {
            return this.zonasRepository.GetProvinciasConEspecialidadSucursalesPrestador(financiadorId, paisId, especialidadId);
        }

        public List<Provincia> GetProvinciasConCentrosAtencion(int financiadorId, int paisId)
        {
            return this.zonasRepository.GetProvinciasConCentrosAtencion(financiadorId, paisId);
        }

        public void ModifyProvincia(Provincia provincia)
        {
            this.zonasRepository.ModifyProvincia(provincia);
        }
    }
}
